// 页面导航功能
document.addEventListener('DOMContentLoaded', function() {
    // 侧边栏菜单和顶部导航点击事件
    const menuItems = document.querySelectorAll('.menu-item');
    const navLinks = document.querySelectorAll('.nav-link');
    const pages = document.querySelectorAll('.page');
    const allNavigationItems = [...menuItems, ...navLinks];

    // 页面切换函数
    function switchToPage(targetPage) {
        // 移除所有active类
        menuItems.forEach(menu => menu.classList.remove('active'));
        navLinks.forEach(nav => nav.classList.remove('active'));
        pages.forEach(page => page.classList.remove('active'));
        
        // 添加active类到当前选中项
        const targetMenuItem = document.querySelector(`.menu-item[data-page="${targetPage}"]`);
        const targetNavLink = document.querySelector(`.nav-link[data-page="${targetPage}"]`);
        
        if (targetMenuItem) targetMenuItem.classList.add('active');
        if (targetNavLink) targetNavLink.classList.add('active');
        
        // 显示对应页面
        const targetPageElement = document.getElementById(targetPage);
        if (targetPageElement) targetPageElement.classList.add('active');
        
        // 更新面包屑
        updateBreadcrumb(targetPage);
    }

    // 更新面包屑导航
    function updateBreadcrumb(currentPage) {
        const pageNames = {
            'dashboard': '工作台',
            'evaluation': '安全评价计算',
            'hazard': '隐患跟踪管理', 
            'reports': '报告管理',
            'knowledge': '知识标准库',
            'users': '人员信息管理'
        };
        
        const breadcrumbText = document.querySelector('.breadcrumb-text');
        if (breadcrumbText) {
            breadcrumbText.textContent = `首页 / ${pageNames[currentPage] || '未知页面'}`;
        }
    }

    // 绑定所有导航项的点击事件
    allNavigationItems.forEach(item => {
        item.addEventListener('click', function(e) {
            e.preventDefault();
            const targetPage = this.getAttribute('data-page');
            if (targetPage) {
                switchToPage(targetPage);
                // 移动端点击后关闭菜单
                if (window.innerWidth <= 768) {
                    document.querySelector('.nav-menu').classList.remove('open');
                }
            }
        });
    });

    // 选项卡功能
    const tabBtns = document.querySelectorAll('.tab-btn');
    const userTables = document.querySelectorAll('.user-table');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetTab = this.getAttribute('data-tab');
            
            // 移除所有active类
            tabBtns.forEach(tab => tab.classList.remove('active'));
            userTables.forEach(table => table.classList.remove('active'));
            
            // 添加active类到当前选中项
            this.classList.add('active');
            document.getElementById(targetTab + '-table').classList.add('active');
        });
    });

    // 初始化图表
    initCharts();
});

// 安全评价计算功能
function calculateSafety() {
    // 显示加载状态
    const btn = event.target;
    const originalText = btn.innerHTML;
    btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> 计算中...';
    btn.disabled = true;

    // 获取表单数据
    const formData = collectFormData();
    
    // 模拟AHP-MIV-BP计算过程
    setTimeout(() => {
        // 模拟计算结果
        const result = simulateAHPMIVBPCalculation(formData);
        
        // 显示结果
        displayEvaluationResult(result);
        
        // 恢复按钮状态
        btn.innerHTML = originalText;
        btn.disabled = false;
        
        // 滚动到结果区域
        document.getElementById('evaluationResult').scrollIntoView({ 
            behavior: 'smooth' 
        });
    }, 2000);
}

// 收集表单数据
function collectFormData() {
    const formData = {
        basic: {},
        indicators: {}
    };
    
    // 收集基本信息
    const basicInputs = document.querySelectorAll('.form-section:first-child input, .form-section:first-child select');
    basicInputs.forEach(input => {
        formData.basic[input.name || input.previousElementSibling.textContent] = input.value;
    });
    
    // 收集指标数据
    const indicatorInputs = document.querySelectorAll('.indicators-grid input');
    indicatorInputs.forEach(input => {
        const label = input.previousElementSibling.textContent;
        formData.indicators[label] = parseFloat(input.value) || 0;
    });
    
    return formData;
}

// 模拟AHP-MIV-BP计算
function simulateAHPMIVBPCalculation(data) {
    // 指标权重 (简化的AHP权重)
    const weights = {
        '人员因素': 0.25,
        '设备因素': 0.35,
        '环境因素': 0.20,
        '管理因素': 0.20
    };
    
    // 计算各类指标平均值
    const indicators = data.indicators;
    const categories = {
        '人员因素': ['工人安全意识与操作能力', '管理人员的管理能力'],
        '设备因素': ['采掘设备完好率', '矿井通风设备完好率', '瓦斯监测设备完好率', 
                    '防火及消防设施完好率', '井下排水设备完好率', '矿井提升设备完好率', '供电系统设备完好率'],
        '环境因素': ['风量供需比', '顶板管理难易程度', '煤层自燃发火倾向性'],
        '管理因素': ['安全管理制度及落实率', '应急响应机制完善率', '安全检查整改落实率']
    };
    
    let totalScore = 0;
    const categoryScores = {};
    
    // 计算各类指标得分
    Object.keys(categories).forEach(category => {
        let categorySum = 0;
        let validCount = 0;
        
        categories[category].forEach(indicator => {
            if (indicators[indicator] && indicators[indicator] > 0) {
                categorySum += indicators[indicator];
                validCount++;
            }
        });
        
        const categoryAvg = validCount > 0 ? categorySum / validCount : 0.5;
        categoryScores[category] = categoryAvg;
        totalScore += categoryAvg * weights[category];
    });
    
    // BP神经网络预测值 (模拟)
    const bpPrediction = totalScore + (Math.random() - 0.5) * 0.1;
    
    // 确定安全等级
    let level, levelClass;
    if (totalScore >= 0.8) {
        level = 'A级 - 安全';
        levelClass = 'level-a';
    } else if (totalScore >= 0.6) {
        level = 'B级 - 较安全';
        levelClass = 'level-b';
    } else if (totalScore >= 0.4) {
        level = 'C级 - 较危险';
        levelClass = 'level-c';
    } else {
        level = 'D级 - 危险';
        levelClass = 'level-d';
    }
    
    return {
        level: level,
        levelClass: levelClass,
        score: (totalScore * 100).toFixed(1),
        bpScore: bpPrediction.toFixed(3),
        expectedScore: totalScore.toFixed(3),
        categoryScores: categoryScores,
        lowScoreIndicators: findLowScoreIndicators(indicators)
    };
}

// 找出低分指标
function findLowScoreIndicators(indicators) {
    const lowScore = [];
    Object.keys(indicators).forEach(indicator => {
        if (indicators[indicator] < 0.6) {
            lowScore.push(indicator);
        }
    });
    return lowScore;
}

// 显示评价结果
function displayEvaluationResult(result) {
    const resultSection = document.getElementById('evaluationResult');
    
    // 更新结果显示
    resultSection.querySelector('.safety-level').textContent = result.level;
    resultSection.querySelector('.safety-level').className = `safety-level ${result.levelClass}`;
    resultSection.querySelector('.safety-score').textContent = result.score + '分';
    resultSection.querySelector('.bp-score').textContent = result.bpScore;
    resultSection.querySelector('.expected-score').textContent = result.expectedScore;
    
    // 显示结果区域
    resultSection.style.display = 'block';
    
    // 如果是较危险或危险等级，自动触发隐患整改
    if (result.levelClass === 'level-c' || result.levelClass === 'level-d') {
        setTimeout(() => {
            triggerHazardRemediation(result);
        }, 1000);
    }
}

// 触发隐患整改
function triggerHazardRemediation(result) {
    if (result.lowScoreIndicators.length > 0) {
        const message = `检测到${result.lowScoreIndicators.length}个低分指标，系统将自动生成整改任务。是否立即查看隐患跟踪页面？`;
        if (confirm(message)) {
            // 切换到隐患跟踪页面
            document.querySelector('.menu-item[data-page="hazard"]').click();
        }
    }
}

// 生成报告
function generateReport() {
    const btn = event.target;
    const originalText = btn.innerHTML;
    btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> 生成中...';
    btn.disabled = true;

    setTimeout(() => {
        // 模拟报告生成
        alert('安全评价报告已生成！\n报告编号: REP20251009-001\n文件格式: PDF/Word\n生成时间: ' + new Date().toLocaleString());
        
        // 恢复按钮状态
        btn.innerHTML = '<i class="fas fa-download"></i> 下载报告';
        btn.onclick = downloadReport;
        btn.disabled = false;
    }, 2000);
}

// 下载报告
function downloadReport() {
    alert('报告下载功能将在实际部署时实现');
}

// 初始化图表 (使用Chart.js或类似库)
function initCharts() {
    // 这里可以集成真实的图表库
    // 现在只是占位符显示
    const chartPlaceholders = document.querySelectorAll('.chart-placeholder');
    chartPlaceholders.forEach(placeholder => {
        placeholder.innerHTML = '<div style="color: #666; text-align: center; font-size: 14px;">图表区域<br><small>实际部署时将显示真实图表</small></div>';
    });
}

// 搜索功能
function searchReports() {
    const searchType = document.querySelector('.search-section select').value;
    const keyword = document.querySelector('.search-section input').value;
    
    if (!keyword.trim()) {
        alert('请输入搜索关键词');
        return;
    }
    
    // 模拟搜索
    console.log(`搜索类型: ${searchType}, 关键词: ${keyword}`);
    alert(`搜索功能演示\n搜索类型: ${searchType}\n关键词: ${keyword}\n\n实际系统中将显示搜索结果`);
}

// 状态更新功能
function updateHazardStatus(taskId, newStatus) {
    alert(`任务 ${taskId} 状态已更新为: ${newStatus}`);
    // 实际实现中会更新数据库并刷新页面
}

// 用户管理功能
function addUser() {
    alert('添加用户功能将弹出用户信息填写表单');
}

function editUser(userId) {
    alert(`编辑用户 ${userId} 的信息`);
}

function deleteUser(userId) {
    if (confirm('确定要删除此用户吗？')) {
        alert(`用户 ${userId} 已删除`);
    }
}

// 知识库搜索功能
function searchKnowledge() {
    const keyword = document.querySelector('#knowledge .search-bar input').value;
    if (!keyword.trim()) {
        alert('请输入搜索关键词');
        return;
    }
    alert(`知识库搜索: ${keyword}\n实际系统中将显示相关知识内容`);
}

// 响应式菜单切换
function toggleSidebar() {
    const sidebar = document.querySelector('.sidebar');
    sidebar.classList.toggle('open');
}

// 移动端适配
if (window.innerWidth <= 768) {
    // 在导航栏添加菜单按钮
    const navBrand = document.querySelector('.nav-brand');
    const menuBtn = document.createElement('button');
    menuBtn.innerHTML = '<i class="fas fa-bars"></i>';
    menuBtn.className = 'menu-toggle';
    menuBtn.onclick = toggleNavMenu;
    navBrand.appendChild(menuBtn);
}

// 顶部导航菜单切换
function toggleNavMenu() {
    const navMenu = document.querySelector('.nav-menu');
    navMenu.classList.toggle('open');
}

// 窗口大小改变时的响应
window.addEventListener('resize', function() {
    if (window.innerWidth > 1024) {
        document.querySelector('.sidebar').classList.remove('open');
    }
    if (window.innerWidth > 768) {
        document.querySelector('.nav-menu').classList.remove('open');
    }
});

// 表单验证
function validateForm() {
    const requiredFields = document.querySelectorAll('input[required], select[required]');
    let isValid = true;
    
    requiredFields.forEach(field => {
        if (!field.value.trim()) {
            field.style.borderColor = '#e74c3c';
            isValid = false;
        } else {
            field.style.borderColor = '#e9ecef';
        }
    });
    
    return isValid;
}

// 自动保存功能
let autoSaveTimer;
function autoSave() {
    clearTimeout(autoSaveTimer);
    autoSaveTimer = setTimeout(() => {
        const formData = collectFormData();
        localStorage.setItem('evaluationDraft', JSON.stringify(formData));
        console.log('表单数据已自动保存');
    }, 5000);
}

// 监听表单输入变化
document.addEventListener('input', function(e) {
    if (e.target.matches('input, select, textarea')) {
        autoSave();
    }
});

// 页面加载时恢复草稿
window.addEventListener('load', function() {
    const savedDraft = localStorage.getItem('evaluationDraft');
    if (savedDraft) {
        const data = JSON.parse(savedDraft);
        // 这里可以实现数据恢复逻辑
        console.log('发现保存的草稿数据', data);
    }
});

// 打印功能
function printReport(reportId) {
    alert(`正在准备打印报告 ${reportId}...`);
    // 实际实现中会生成打印页面
    window.print();
}

// 预览功能
function previewReport(reportId) {
    alert(`正在加载报告 ${reportId} 预览...`);
    // 实际实现中会打开报告预览窗口
}

// 导出功能
function exportData(type) {
    alert(`正在导出${type}数据...`);
    // 实际实现中会生成Excel或PDF文件
}

// 通知功能
function showNotification(message, type = 'info') {
    const notification = document.createElement('div');
    notification.className = `notification ${type}`;
    notification.textContent = message;
    
    // 样式
    notification.style.cssText = `
        position: fixed;
        top: 90px;
        right: 20px;
        background: white;
        padding: 15px 20px;
        border-radius: 8px;
        box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        z-index: 1001;
        border-left: 4px solid #3498db;
        animation: slideIn 0.3s ease;
    `;
    
    if (type === 'success') {
        notification.style.borderLeftColor = '#27ae60';
    } else if (type === 'warning') {
        notification.style.borderLeftColor = '#f39c12';
    } else if (type === 'error') {
        notification.style.borderLeftColor = '#e74c3c';
    }
    
    document.body.appendChild(notification);
    
    setTimeout(() => {
        notification.remove();
    }, 3000);
}

// 数据统计功能
function updateStatistics() {
    // 模拟从后端获取统计数据
    const stats = {
        totalEvaluations: 125,
        pendingHazards: 23,
        completedRemediation: 89,
        dangerousMines: 12
    };
    
    // 更新统计卡片
    const statCards = document.querySelectorAll('.stat-content h3');
    if (statCards.length >= 4) {
        statCards[0].textContent = stats.totalEvaluations;
        statCards[1].textContent = stats.pendingHazards;
        statCards[2].textContent = stats.completedRemediation;
        statCards[3].textContent = stats.dangerousMines;
    }
}

// 用户菜单功能
function showUserMenu() {
    const options = ['个人设置', '修改密码', '退出登录'];
    const choice = prompt('用户菜单:\n1. 个人设置\n2. 修改密码\n3. 退出登录\n\n请输入选项数字:', '1');
    
    switch(choice) {
        case '1':
            alert('个人设置功能');
            break;
        case '2':
            alert('修改密码功能');
            break;
        case '3':
            if (confirm('确定要退出登录吗？')) {
                alert('退出登录');
            }
            break;
        default:
            break;
    }
}

// 快速操作功能
document.addEventListener('DOMContentLoaded', function() {
    // 消息通知按钮
    const notificationBtn = document.querySelector('.quick-btn[title="消息通知"]');
    if (notificationBtn) {
        notificationBtn.addEventListener('click', function() {
            alert('消息通知:\n1. 有3个待整改隐患需要处理\n2. 东风煤矿评价报告已生成\n3. 系统将于明天2点进行维护');
        });
    }
});